Lisp 実装仕様
式(expression)
(+ 137 349)、(* 5 99)
+、*はオペレータ
137、349などはオペランド、演算子(operator)
データ型
integers
symbols
list
(cons 'a (cons 'b nil)
cons cells
S式の定義
アトムとはS式である
S式を0個以上並べて()で括ったものもS式である
cell
tag
数値(Number)
シンボル(Symbol)
リスト(List)
サブルーチン(SUBR)
引数を評価しないもの(FSUBR)
name
REPL(read-eval-print loop)
read
"(" LPAREN
")" RPAREN
"'" QUOTE
"." DOT
eval
数なら数を返す。
シンボルならシンボルに束縛された値を返す。
クオートがついていたなら何も計算せずそのまま返す。
リストなら関数とみてその値を計算する。
defun、setqのような特殊形式ならそれに応じた処理をする。
print
loop
xxlispコマンドで起動して、replから実行できる
ビルトイン関数(組込関数)
+, *, =, <, ',
car, cdr, cons, list, quote, eq, equal, atom, null
caar, cadr,
defun,
lambda
真偽値t, nil
制御
if, and, or, not, cond
ユーザー定義関数
user-defined functions
変数
global variables
lexically-scoped local variables
クロージャ(closure)
マクロ
ガベージコレクタ(gabage collector)
確認用
Q. Lisp 実装仕様
Q. REPLの実装の仕方
Q. Read
Q. Eval
Q. Print
Q. Loop
Q. S式
Q. cons cell
Q. アトム
Q. リストを実装
参考
cons cell
関連
メモ